package common;

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;

import models.Trip;

public class ReflectUtils {

	
	/**
	public Class getListActualType(Class<?> cls) {
		
		Set<Field> fields = new LinkedHashSet<Field>();
		Collections.addAll(fields, cls.getDeclaredFields() ) ;
		fields.forEach(field->{
			// 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同，或是否是其超类或超接口。
			if ( Collection.class.isAssignableFrom(field.getType()) )
			{
				System.err.println(field.getName());
				System.err.println( field.getGenericType());
				// 将list中的泛型对去类型读取出来(ParameterizedType)(getActualTypeArguments-返回表示此类型实际类型参数的 Type对象的数组。)
				final Class<?> fieldType = (Class<?>) ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
				System.err.println( fieldType.getName() );
			}
		});
		
	    
	}
	*/
}
